Page({
  data: {
    messageStop:false,
    layers: [],
    lastMessage: 'cake' + 0, //最新一条消息
    isPlay: false,
    xiaoAnMic: 'https://moumou-1301304205.cos.ap-shenzhen-fsi.myqcloud.com/nine-thirth/cake/xiaoan.m4a',
    srcMic: 'https://moumou-1301304205.cos.ap-shenzhen-fsi.myqcloud.com/nine-thirth/cake/cakeMusic.ogg',
    dialogue: [],
    message:true
  },
  onLoad: function () {
    this.generateLayers();
  },

  messageStart() {
    let message = this.data.message
    if(message){
      this.setData({
        dialogue:[]
      })
    }else{
      return
    }
    let that = this
    // 同步转播信息
    let dialogue = [{
        "src": "ljy.jpg",
        "message": "祝你生日快乐",
        "interval": 4000
      },
      {
        "src": "bb.jpg",
        "message": "祝你生日快乐",
        "interval": 4000
      },
      {
        "src": "mm.jpg",
        "message": "祝你生日快乐",
        "interval": 5000
      },
      {
        "src": "gg.jpg",
        "message": "祝你生日快乐",
        "interval": 18000
      },
      {
        "src": "as.jpg",
        "message": "今天你生日",
        "interval": 2500
      },
      {
        "src": "zhx.jpg",
        "message": "送上我祝福",
        "interval": 2500
      },
      {
        "src": "zjb.jpg",
        "message": "特别的日子有灿烂的笑容",
        "interval": 4250
      },
      {
        "src": "dhb.png",
        "message": "我们来相聚",
        "interval": 2300
      },
      {
        "src": "nn.jpg",
        "message": "带着满满的关爱",
        "interval": 2300
      },
      {
        "src": "lf.jpg",
        "message": "祝福你好运常伴",
        "interval": 3500
      },
      {
        "src": "sdy.jpg",
        "message": "点燃了蜡烛",
        "interval": 2500
      },
      {
        "src": "zyx.jpg",
        "message": "许下你心愿",
        "interval": 2500
      },
      {
        "src": "yy.jpg",
        "message": "未来的日子每个梦想都实现",
        "interval": 3500
      },
      {
        "src": "lyap.jpg",
        "message": "唱首祝福歌",
        "interval": 2500
      },
      {
        "src": "ljy.jpg",
        "message": "我们相亲又相爱",
        "interval": 2000
      },
      {
        "src": "wg.jpg",
        "message": "祝福你健康平安",
        "interval": 6500
      },
      {
        "src": "ly.jpg",
        "message": "对所有的烦恼说 bye bye",
        "interval": 4250
      },
      {
        "src": "lm.jpg",
        "message": "对所有的快乐说 hi hi",
        "interval": 4250
      },
      {
        "src": "ljy.jpg",
        "message": "亲爱的亲爱的生日快乐",
        "interval": 4250
      },
      {
        "src": "dl.jpg",
        "message": "每一天都精彩",
        "interval": 4250
      },
      {
        "src": "mm.jpg",
        "message": "看幸福的花儿为你盛开",
        "interval": 4250
      },
      {
        "src": "aj.jpg",
        "message": "听美妙的音乐为你喝彩",
        "interval": 4250
      },
      {
        "src": "ljy.jpg",
        "message": "亲爱的亲爱的生日快乐",
        "interval": 4250
      },
      {
        "src": "zyx.jpg",
        "message": "祝你幸福永远",
        "interval": 3500
      },
      {
        "src": "wqp.png",
        "message": "幸福永远",
        "interval": 12500
      },
      {
        "src": "lzl.jpg",
        "message": "点燃了蜡烛",
        "interval": 1800
      },
      {
        "src": "xiam.jpg",
        "message": "许下你心愿",
        "interval": 2500
      },
      {
        "src": "pyz.jpg",
        "message": "未来的日子每个梦想都实现",
        "interval": 3500
      },
      {
        "src": "as.jpg",
        "message": "唱首祝福歌",
        "interval": 2500
      },
      {
        "src": "dy.jpg",
        "message": "我们相亲又相爱",
        "interval": 2500
      },
      {
        "src": "chengs.jpg",
        "message": "祝福你健康平安",
        "interval": 6000
      },
      {
        "src": "sj.jpg",
        "message": "对所有的烦恼说 bye bye",
        "interval": 4250
      },
      {
        "src": "zjiab.jpg",
        "message": "对所有的快乐说 hi hi",
        "interval": 4250
      },
      {
        "src": "ljy.jpg",
        "message": "亲爱的亲爱的生日快乐",
        "interval": 4800
      },
      {
        "src": "ybao.jpg",
        "message": "每一天都精彩",
        "interval": 4500
      },
      {
        "src": "zyx.jpg",
        "message": "看幸福的花儿为你盛开",
        "interval": 3800
      },
      {
        "src": "bbao.jpg",
        "message": "听美妙的音乐为你喝彩",
        "interval": 4250
      },
      {
        "src": "ljy.jpg",
        "message": "亲爱的亲爱的生日快乐",
        "interval": 4250
      },
      {
        "src": "cz.jpg",
        "message": "祝你幸福永远",
        "interval": 3500
      },
      {
        "src": "pyz.jpg",
        "message": "幸福永远",
        "interval": 3000
      },
      {
        "src": "ljy.jpg",
        "message": "生日快乐",
        "interval": 1200
      },
      {
        "src": "zjb.jpg",
        "message": "生日快乐",
        "interval": 1200
      },
      {
        "src": "zhx.jpg",
        "message": "生日快乐",
        "interval": 11000
      },
      {
        "src": "lwl.jpg",
        "message": "对所有的烦恼说 bye bye",
        "interval": 4250
      },
      {
        "src": "gzf.png",
        "message": "对所有的快乐说 hi hi",
        "interval": 4250
      },
      {
        "src": "ljy.jpg",
        "message": "亲爱的亲爱的生日快乐",
        "interval": 4250
      },
      {
        "src": "dg.jpg",
        "message": "每一天都精彩",
        "interval": 3500
      },
      {
        "src": "zhx.jpg",
        "message": "看幸福的花儿为你盛开",
        "interval": 4450
      },
      {
        "src": "zjb.jpg",
        "message": "听美妙的音乐为你喝彩",
        "interval": 4450
      },
      {
        "src": "ljy.jpg",
        "message": "亲爱的亲爱的生日快乐",
        "interval": 4450
      },
      {
        "src": "zyx.jpg",
        "message": "祝你幸福永远",
        "interval": 4250
      },
      {
        "src": "more.png",
        "message": "幸福永远",
        "interval": 1800
      },
      {
        "src": "xiaoan.jpg",
        "message": "喵",
        "interval": 4250
      }
    ]
    this.setData({
      dialogue: dialogue
    }, () => {
      that.showDialogueBoxes();
    })
  },

  //播放语音
  yuyinPlay(msuic,isMessage) {
    let that = this
    //创建内部 audio 上下文 InnerAudioContext 对象。
    that.innerAudioContext = wx.createInnerAudioContext();
    that.innerAudioContext.onError(function (res) {})
    if ((that.data.srcMic == '') || (that.data.srcMic == undefined)) return;

    that.innerAudioContext.src = msuic //设置音频地址
    this.innerAudioContext.play(); //播放音频
    if(isMessage){
      this.messageStart() //同步转播消息
    }
  },

  //播放
  audioPlay() {
    this.yuyinPlay(this.data.srcMic,true);
    this.setData({
      isPlay: true,
      // dialogue:[]
      messageStop:false,
      message:true,

    })
  },
  // 停止播放
  audioPause() {
    this.setData({
      isPlay: false,
      messageStop:true
    })
    this.innerAudioContext.pause(); //暂停音频 

  },
  // 结束语音
  end: function (e) {
    let that = this
    if ((that.data.src) || (that.data.src != undefined)) return
    that.innerAudioContext.pause(); //暂停音频 
  },



  onShow: function () {},

  // 对话
  showDialogueBoxes: function () {
    var that = this
    let index = 0;
    const dialogue = this.data.dialogue;
    
    const showNextMessage = () => {
      let messageStop = that.data.messageStop
      if(messageStop){
        return
      }
      if (index <= dialogue.length - 1) {
        const updatedDialogue = [...dialogue];
        updatedDialogue[index].active = true;
        this.setData({
          dialogue: updatedDialogue,
        });
        if (index > 7) {
          this.setData({
            lastMessage: 'cake' + index
          });
        }

        // 计算下一次调用的间隔时间
        const nextInterval = dialogue[index].interval || 2500; // 如果没有定义间隔，则默认为2500毫秒
        console.log(nextInterval);
        // 增加索引并设置下一次调用
        index++;
        setTimeout(showNextMessage, nextInterval);
        if(index == dialogue.length - 1){
          that.yuyinPlay(that.data.xiaoAnMic,false)

        }
      } else {
        // 所有对话框都处理完毕
        clearInterval(interval); // 清除任何可能存在的旧定时器
      }
    };

    // 启动第一个消息的显示，但先等待3秒
    setTimeout(showNextMessage, 5000);
  },

  // 星星
  generateLayers: function () {
    let layers = [];
    const baseDuration = 2500;
    for (let i = 1; i <= 5; i++) {
      const size = i;
      const duration = baseDuration / Math.pow(2, i - 1);
      const boxShadow = this.getShadows(Math.floor(250 / Math.pow(2, i - 1)));

      let layerStyle = `
        width: ${size}px;
        height: ${size}px;
        box-shadow: ${boxShadow};
        animation: moveUp ${duration}s linear infinite;
      `;

      layers.push({
        class: 'layer',
        style: layerStyle
      });
    }
    this.setData({
      layers
    });
  },
  getShadows: function (n) {
    let shadows = '';
    for (let i = 0; i < n; i++) {
      shadows += `${Math.random() * 100}vw ${Math.random() * 100}vh #fff, `;
    }
    return shadows.slice(0, -2); // Remove the last comma and space
  }
});